/*
 * lexer.h
 *
 *  Created on: 24/07/2012
 *      Author: annibal
 */

#ifndef LEXER_H_
#define LEXER_H_

#include "constantes.h"
#include "automato.h"

typedef struct {
	int numTokens;			/* tamanho da lista de tokens */
	char *listaTokens;		/* lista de tokens */
	char **tabelaTokens;	/* tabela de associação entre estados e tokens */
	char *token;			/* token extraído */
	Automato *AF;			/* autômato finito */
} Lexer;

void criaLexer(FILE *espec, Lexer *L);
void criaTabelaTokens(FILE *espec, Lexer *L);
void extraiToken(Lexer *L);
char passaToken(Lexer *L);
void recebeTokenLexer(char token, Lexer *L);
void inicializaLexer(char* cadeia, Lexer *L);

#endif /* LEXER_H_ */
